1
상속과 상태의 진화
AI035Lesson 2
00:00

루비에서 상속은 단순히 메서드를 공유하는 것 이상입니다. 그것은 상태의 진화입니다. 예를 들어, KaraokeSong < Song과 같은 서브클래스를 생성할 때, 자식 클래스는 부모 클래스의 구조를 상속하면서 자신의 정체성을 정교하게 다듬는 '은-것이다'(is-a) 관계를 설정합니다.

1. 초기화 체인

그리고 super 키워드는 세대 간의 다리를 연결합니다. initialize메서드 내부에서 super 를 호출하면 인수를 부모의 생성자로 전달하여 기본 인스턴스 변수(@name, @artist)가 먼저 설정되고, 서브클래스가 고유한 상태(@lyrics)를 추가할 수 있도록 보장합니다.

class Song@name, @artistclass KaraokeSong@lyricssuper()는 부모를 호출합니다

2. 메서드 증강

예를 들어, to_s 와 같은 메서드를 오버라이드하면 동작을 확장할 수 있습니다. 새로운 정의 내에서 super 를 호출함으로써 부모의 문자열 출력을 캡처하고, 단순히 서브클래스의 새 데이터를 추가함으로써 깔끔한 진화적 흐름을 유지할 수 있습니다.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>